#Какова основная цель использования polling?
#Для периодического опрашивания устройства или системы на предмет новых данных.
######################################
#Чем polling отличается от interrupts?
#Interrupts позволяют процессору отвечать на события немедленно, в то время как polling требует постоянного опроса.
#########################################
# Какой недостаток у polling?
# Высокая нагрузка на процессор и память из-за постоянного мониторинга.
##############
#В каком случае использование polling предпочтительно?
#Когда система должна регулярно проверять наличие новых данных без инициации событий со стороны устройств.
###############################################
#Как polling влияет на производительность системы?
#Увеличивает нагрузку на процессор из-за постоянного мониторинга.
###############################
#В каких сценариях polling является предпочтительным по сравнению с прерываниями?
#В приложениях, где устройства или службы не поддерживают механизм прерываний.
######################################################
#Сколько сообщений "Polling" будет выведено перед "Прерывание выполнено"?
import asyncio

async def polling_function():
    try:
        for i in range(10):
            await asyncio.sleep(1)
            print(f"Polling {i+1}")
    except asyncio.CancelledError:
        print("Polling прерван")

async def interrupt_function():
    await asyncio.sleep(5)
    print("Прерывание выполнено")

async def main():
    task = asyncio.create_task(polling_function())
    await interrupt_function()
    task.cancel()

asyncio.run(main())
#Примечание к правильному ответу: Прерывание происходит через 5 секунд, поэтому будет выведено 4 сообщения "polling" перед "Прерывание выполнено".